﻿using System;
using System.Windows.Forms;
using EntitiesAndMappings.Entities;
using ProyectoActivos.Const;
using ProyectoActivos.Daos;
using ProyectoActivos.Validate;

namespace ProyectoActivos.Forms.Mantenimiento
{
    public partial class FrmActualizarSubFamilia : Form, IValidateForm
    {
        private SubFamilia subFamilia;
        public Boolean CerroSinAccion { get; set; }

        private Boolean _valido;

        public FrmActualizarSubFamilia(SubFamilia subFamilia)
        {
            InitializeComponent();
            this.subFamilia = subFamilia;
            _valido = true;
            CerroSinAccion = false;
        }

        public void Invalid()
        {
            _valido = false;
        }

        public Boolean IsValid()
        {
            return _valido;
        }

        private void btnAceptar_Click(object sender, EventArgs e)
        {
            _valido = true;
            errorProvider.Clear();
            FormsAssert.AssertComboBoxSelected(cmbFamilia, errorProvider, this);
            FormsAssert.AssertTextBoxNotEmptyAndSize(txtCodigo, 15, errorProvider, this);
            FormsAssert.AssertTextBoxNotEmptyAndSize(txtDescripcion, 100, errorProvider, this);
           
            
            ActionExecutor.Execute(this, delegate
            {
                subFamilia.Familia = (Familia)cmbFamilia.SelectedItem;
                subFamilia.Codigo = txtCodigo.Text;
                subFamilia.Descripcion = txtDescripcion.Text;
             
                if (subFamilia.Id == 0)
                {
                    subFamilia.Estado = Estado.Activo;
                }
                var subFamiliaDAO = new SubFamiliaDAO();
                subFamilia = subFamiliaDAO.Update(subFamilia);
                Close();
            });
            
        }

        private void FrmActualizarSubFamilia_Load(object sender, EventArgs e)
        {
       
           
            _valido = true;
            ActionExecutor.Execute(this, delegate
            {
                var familiaDAO = new EntidadGenericaDAO<Familia>();
                var listado = familiaDAO.ListarActivos();
                cmbFamilia.DataSource = listado;
               // cmbFamilia.SelectedIndex = GetIndiceTipoDocumento(listado);
            });
      
            if(subFamilia.Id!= 0)
            {
                cmbFamilia.SelectedItem = subFamilia.Familia;
                txtCodigo.Text = subFamilia.Codigo;
                txtDescripcion.Text = subFamilia.Descripcion;
            
            }

          
        
        }
    }
}